package com.jrx.anytxn.param.entity;

import java.math.BigDecimal;
import java.util.Date;

/**
 *
 * 表:pr_rights_and_interests
 * @author pcc
 * @date 2020-07-27
 */
public class PrRightsAndInterests {
    /**
     * 自增主键
     * 表字段:id
     */
    private Long id;

    /**
     * 租户ID
     * 表字段:tenant_id
     */
    private String tenantId;

    /**
     * 权益id
     * 表字段:rights_id
     */
    private String rightsId;

    /**
     * 机构号
     * 表字段:organization_id
     */
    private String organizationId;

    /**
     * 权益名称
     * 表字段:rights_name
     */
    private String rightsName;

    /**
     * 权益子名称
     */
    private String rightsSubName;

    /**
     * 状态 0 失效 1 生效
     * 表字段:rights_status
     */
    private String rightsStatus;

    /**
     * 权益类型 01 按天免息 02 按折扣免息
     * 表字段:rights_type
     */
    private String rightsType;

    /**
     * 折扣天数
     * 表字段:discount_days
     */
    private Integer discountDays;

    /**
     * 折扣利率 按折扣免息必填
     * 表字段:discount_rate
     */
    private BigDecimal discountRate;

    /**
     * 有效期(天)
     * 表字段:valid_days
     */
    private Integer validDays;

    /**
     * 折扣计算方式 1-按期
     * 表字段:discount_type
     */
    private String discountType;

    /**
     * 折扣期数
     * 表字段:discount_terms
     */
    private Integer discountTerms;

    /**
     * 适用产品 逗号隔开
     * 表字段:allow_products
     */
    private String allowProducts;

    /**
     * 最小借款金额
     * 表字段:min_amount
     */
    private BigDecimal minAmount;

    /**
     * 最大借款金额
     * 表字段:max_amount
     */
    private BigDecimal maxAmount;

    /**
     * 允许借款期数 逗号隔开
     * 表字段:allow_loan_tenor
     */
    private String allowLoanTenor;

    /**
     * 贴息支付方 01-- 商户  02-- 平台  03-- 资金方  04--渠道
     * 表字段:interest_discount_payer
     */
    private String interestDiscountPayer;

    /**
     * 创建时间
     * 表字段:create_time
     */
    private Date createTime;

    /**
     * 最后更新时间
     * 表字段:update_time
     */
    private Date updateTime;

    /**
     * 最后更新操作员
     * 表字段:update_by
     */
    private String updateBy;

    /**
     * 记录版本号
     * 表字段:record_version_number
     */
    private Integer recordVersionNumber;

    /**
     * 卡券描述
     */
    private String rightsDesc;
    /**
     * 卡券类别
     *  0-卡券,1-直冲,2-话费,3-代金券、4-折扣券、5-物品、9-其他
     */
    private String rightsCate;
    /**
     * 权益提供方即商户ID
     */
    private String merchantId;
    /**
     * 品牌ID，如果为0或空说明是全部品牌
     */
    private String brandId;
    /**
     * 成本
     */
    private BigDecimal cost;
    /**
     *  销售价格
     */
    private BigDecimal salePrice;
    /**
     * 市场价格
     */
    private BigDecimal marketPrice;
    /**
     * 面值
     */
    private BigDecimal faceValue;
    /**
     * 门槛（代金券和折扣券有实际业务值，其它类型权益为0）
     */
    private BigDecimal thresholdPrice;
    /**
     * 是否可叠加类型
     *  0-不可叠加；
     *  1-可以叠加,仅代金券和折扣券有实际业务值
     */
    private String overlayType;
    /**
     * 是否可循环使用
     * 仅限折扣券有值
     * 0: 不可循环，一次使用
     * 1: 可循环使用"
     */
    private String cycleUse;
    /**
     * 叠加上限即每笔最大叠加数（单位：张）,仅代金券和折扣券有实际业务值
     */
    private Integer overlayCeiling;
    /**
     * 折扣值[1-10)之间（默认为0，精度2）
     */
    private BigDecimal discountValue;
    /**
     * 折扣上限即每笔订单优惠上限金额(单位：元),仅折扣券有实际业务值
     */
    private BigDecimal discountsCeiling;
    /**
     * 生效时间
     */
    private String effectiveDate;
    /**
     * 失效时间
     */
    private String expirationDate;
    /**
     * 入库数量
     */
    private Integer storeQuantity;
    /**
     * 单品限制类型
     *  "0-全部商品可用；
     *  1-限定单品可用,仅代金券和折扣券有实际业务值"
     */
    private String goodsLimitType;
    /**
     * 投放类型
     * "0-公共投放、
     * 1-定向投放 定向投放必须指定投放机构"
     */
    private String castType;
    /**
     * 使用类型
     *  "0-全部场所；
     *  -特定场所；特定场所必须指定子机构"
     */
    private String useType;
    /**
     * 卡券logo地址(144X144)
     */
    private String logoUrl;
    /**
     * 卡券大图地址(640X180)
     */
    private String bannerUrl;
    /**
     *  是否启用
     *  "0-待启用；
     *   1-已启用；
     *   2-已下线"
     */
    private String enableTag;
    /**
     * 审批状态
     * "0-审核中；
     *  1-通过；
     *  2-驳回"
     */
    private String approveState;
    /**
     * 冻结状态
     *  "0-正常；
     *   1-冻结,通常用于管理平台限定已启用的权益是否可用"
     */
    private String freezeState;
    /**
     * 品牌名称
     */
    private String brandName;
    /**
     * 品牌图片
     */
    private String brandImg;
    /**
     * 循环折扣金额上限 (仅循环类折扣有值)
     */
    private BigDecimal discountAmtLimit;
    /**
     * 渠道
     */
    private String channel;
    /**
     * 子渠道
     */
    private String subChannel;
    /**
     * 商户ids
     */
    private String merchantIds;

    /**
     * 获取自增主键
     * @return id Long
     */
    public Long getId() {
        return id;
    }

    /**
     * 设置自增主键
     * @param id 自增主键
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * 获取租户ID
     * @return tenantId String
     */
    public String getTenantId() {
        return tenantId;
    }

    /**
     * 设置租户ID
     * @param tenantId 租户ID
     */
    public void setTenantId(String tenantId) {
        this.tenantId = tenantId;
    }

    /**
     * 获取权益id
     * @return rightsId String
     */
    public String getRightsId() {
        return rightsId;
    }

    /**
     * 设置权益id
     * @param rightsId 权益id
     */
    public void setRightsId(String rightsId) {
        this.rightsId = rightsId;
    }

    /**
     * 获取机构号
     * @return organizationId String
     */
    public String getOrganizationId() {
        return organizationId;
    }

    /**
     * 设置机构号
     * @param organizationId 机构号
     */
    public void setOrganizationId(String organizationId) {
        this.organizationId = organizationId;
    }

    /**
     * 获取权益名称
     * @return rightsName String
     */
    public String getRightsName() {
        return rightsName;
    }

    /**
     * 设置权益名称
     * @param rightsName 权益名称
     */
    public void setRightsName(String rightsName) {
        this.rightsName = rightsName;
    }

    /**
     * 获取状态 0 失效 1 生效
     * @return rightsStatus String
     */
    public String getRightsStatus() {
        return rightsStatus;
    }

    /**
     * 设置状态 0 失效 1 生效
     * @param rightsStatus 状态 0 失效 1 生效
     */
    public void setRightsStatus(String rightsStatus) {
        this.rightsStatus = rightsStatus;
    }

    /**
     * 获取权益类型 01 按天免息 02 按折扣免息
     * @return rightsType String
     */
    public String getRightsType() {
        return rightsType;
    }

    /**
     * 设置权益类型 01 按天免息 02 按折扣免息
     * @param rightsType 权益类型 01 按天免息 02 按折扣免息
     */
    public void setRightsType(String rightsType) {
        this.rightsType = rightsType;
    }

    /**
     * 获取折扣天数
     * @return discountDays Integer
     */
    public Integer getDiscountDays() {
        return discountDays;
    }

    /**
     * 设置折扣天数
     * @param discountDays 折扣天数
     */
    public void setDiscountDays(Integer discountDays) {
        this.discountDays = discountDays;
    }

    /**
     * 获取折扣利率 按折扣免息必填
     * @return discountRate BigDecimal
     */
    public BigDecimal getDiscountRate() {
        return discountRate;
    }

    /**
     * 设置折扣利率 按折扣免息必填
     * @param discountRate 折扣利率 按折扣免息必填
     */
    public void setDiscountRate(BigDecimal discountRate) {
        this.discountRate = discountRate;
    }

    /**
     * 获取有效期(天)
     * @return validDays Integer
     */
    public Integer getValidDays() {
        return validDays;
    }

    /**
     * 设置有效期(天)
     * @param validDays 有效期(天)
     */
    public void setValidDays(Integer validDays) {
        this.validDays = validDays;
    }

    /**
     * 获取折扣计算方式 1-按期
     * @return discountType String
     */
    public String getDiscountType() {
        return discountType;
    }

    /**
     * 设置折扣计算方式 1-按期
     * @param discountType 折扣计算方式 1-按期
     */
    public void setDiscountType(String discountType) {
        this.discountType = discountType;
    }

    /**
     * 获取折扣期数
     * @return discountTerms Integer
     */
    public Integer getDiscountTerms() {
        return discountTerms;
    }

    /**
     * 设置折扣期数
     * @param discountTerms 折扣期数
     */
    public void setDiscountTerms(Integer discountTerms) {
        this.discountTerms = discountTerms;
    }

    /**
     * 获取适用产品 逗号隔开
     * @return allowProducts String
     */
    public String getAllowProducts() {
        return allowProducts;
    }

    /**
     * 设置适用产品 逗号隔开
     * @param allowProducts 适用产品 逗号隔开
     */
    public void setAllowProducts(String allowProducts) {
        this.allowProducts = allowProducts;
    }

    /**
     * 获取最小借款金额
     * @return minAmount BigDecimal
     */
    public BigDecimal getMinAmount() {
        return minAmount;
    }

    /**
     * 设置最小借款金额
     * @param minAmount 最小借款金额
     */
    public void setMinAmount(BigDecimal minAmount) {
        this.minAmount = minAmount;
    }

    /**
     * 获取最大借款金额
     * @return maxAmount BigDecimal
     */
    public BigDecimal getMaxAmount() {
        return maxAmount;
    }

    /**
     * 设置最大借款金额
     * @param maxAmount 最大借款金额
     */
    public void setMaxAmount(BigDecimal maxAmount) {
        this.maxAmount = maxAmount;
    }

    /**
     * 获取允许借款期数 逗号隔开
     * @return allowLoanTenor String
     */
    public String getAllowLoanTenor() {
        return allowLoanTenor;
    }

    /**
     * 设置允许借款期数 逗号隔开
     * @param allowLoanTenor 允许借款期数 逗号隔开
     */
    public void setAllowLoanTenor(String allowLoanTenor) {
        this.allowLoanTenor = allowLoanTenor;
    }

    /**
     * 获取贴息支付方 01-- 商户  02-- 平台  03-- 资金方  04--渠道
     * @return interestDiscountPayer String
     */
    public String getInterestDiscountPayer() {
        return interestDiscountPayer;
    }

    /**
     * 设置贴息支付方 01-- 商户  02-- 平台  03-- 资金方  04--渠道
     * @param interestDiscountPayer 贴息支付方 01-- 商户  02-- 平台  03-- 资金方  04--渠道
     */
    public void setInterestDiscountPayer(String interestDiscountPayer) {
        this.interestDiscountPayer = interestDiscountPayer;
    }

    /**
     * 获取创建时间
     * @return createTime Date
     */
    public Date getCreateTime() {
        return createTime;
    }

    /**
     * 设置创建时间
     * @param createTime 创建时间
     */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    /**
     * 获取最后更新时间
     * @return updateTime Date
     */
    public Date getUpdateTime() {
        return updateTime;
    }

    /**
     * 设置最后更新时间
     * @param updateTime 最后更新时间
     */
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    /**
     * 获取最后更新操作员
     * @return updateBy String
     */
    public String getUpdateBy() {
        return updateBy;
    }

    /**
     * 设置最后更新操作员
     * @param updateBy 最后更新操作员
     */
    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
    }

    /**
     * 获取记录版本号
     * @return recordVersionNumber Integer
     */
    public Integer getRecordVersionNumber() {
        return recordVersionNumber;
    }

    /**
     * 设置记录版本号
     * @param recordVersionNumber 记录版本号
     */
    public void setRecordVersionNumber(Integer recordVersionNumber) {
        this.recordVersionNumber = recordVersionNumber;
    }

    public String getRightsDesc() {
        return rightsDesc;
    }

    public void setRightsDesc(String rightsDesc) {
        this.rightsDesc = rightsDesc;
    }

    public String getRightsCate() {
        return rightsCate;
    }

    public void setRightsCate(String rightsCate) {
        this.rightsCate = rightsCate;
    }

    public String getMerchantId() {
        return merchantId;
    }

    public void setMerchantId(String merchantId) {
        this.merchantId = merchantId;
    }

    public String getBrandId() {
        return brandId;
    }

    public void setBrandId(String brandId) {
        this.brandId = brandId;
    }

    public BigDecimal getCost() {
        return cost;
    }

    public void setCost(BigDecimal cost) {
        this.cost = cost;
    }

    public BigDecimal getSalePrice() {
        return salePrice;
    }

    public void setSalePrice(BigDecimal salePrice) {
        this.salePrice = salePrice;
    }

    public BigDecimal getMarketPrice() {
        return marketPrice;
    }

    public void setMarketPrice(BigDecimal marketPrice) {
        this.marketPrice = marketPrice;
    }

    public BigDecimal getFaceValue() {
        return faceValue;
    }

    public void setFaceValue(BigDecimal faceValue) {
        this.faceValue = faceValue;
    }

    public BigDecimal getThresholdPrice() {
        return thresholdPrice;
    }

    public void setThresholdPrice(BigDecimal thresholdPrice) {
        this.thresholdPrice = thresholdPrice;
    }

    public String getOverlayType() {
        return overlayType;
    }

    public void setOverlayType(String overlayType) {
        this.overlayType = overlayType;
    }

    public Integer getOverlayCeiling() {
        return overlayCeiling;
    }

    public void setOverlayCeiling(Integer overlayCeiling) {
        this.overlayCeiling = overlayCeiling;
    }

    public BigDecimal getDiscountValue() {
        return discountValue;
    }

    public void setDiscountValue(BigDecimal discountValue) {
        this.discountValue = discountValue;
    }

    public BigDecimal getDiscountsCeiling() {
        return discountsCeiling;
    }

    public void setDiscountsCeiling(BigDecimal discountsCeiling) {
        this.discountsCeiling = discountsCeiling;
    }

    public String getEffectiveDate() {
        return effectiveDate;
    }

    public void setEffectiveDate(String effectiveDate) {
        this.effectiveDate = effectiveDate;
    }

    public String getExpirationDate() {
        return expirationDate;
    }

    public void setExpirationDate(String expirationDate) {
        this.expirationDate = expirationDate;
    }

    public Integer getStoreQuantity() {
        return storeQuantity;
    }

    public void setStoreQuantity(Integer storeQuantity) {
        this.storeQuantity = storeQuantity;
    }

    public String getGoodsLimitType() {
        return goodsLimitType;
    }

    public void setGoodsLimitType(String goodsLimitType) {
        this.goodsLimitType = goodsLimitType;
    }

    public String getCastType() {
        return castType;
    }

    public void setCastType(String castType) {
        this.castType = castType;
    }

    public String getUseType() {
        return useType;
    }

    public void setUseType(String useType) {
        this.useType = useType;
    }

    public String getLogoUrl() {
        return logoUrl;
    }

    public void setLogoUrl(String logoUrl) {
        this.logoUrl = logoUrl;
    }

    public String getBannerUrl() {
        return bannerUrl;
    }

    public void setBannerUrl(String bannerUrl) {
        this.bannerUrl = bannerUrl;
    }

    public String getEnableTag() {
        return enableTag;
    }

    public void setEnableTag(String enableTag) {
        this.enableTag = enableTag;
    }

    public String getApproveState() {
        return approveState;
    }

    public void setApproveState(String approveState) {
        this.approveState = approveState;
    }

    public String getFreezeState() {
        return freezeState;
    }

    public void setFreezeState(String freezeState) {
        this.freezeState = freezeState;
    }

    public String getBrandName() {
        return brandName;
    }

    public void setBrandName(String brandName) {
        this.brandName = brandName;
    }

    public String getBrandImg() {
        return brandImg;
    }

    public void setBrandImg(String brandImg) {
        this.brandImg = brandImg;
    }

    public String getRightsSubName() {
        return rightsSubName;
    }

    public void setRightsSubName(String rightsSubName) {
        this.rightsSubName = rightsSubName;
    }

    public String getCycleUse() {
        return cycleUse;
    }

    public void setCycleUse(String cycleUse) {
        this.cycleUse = cycleUse;
    }

    public BigDecimal getDiscountAmtLimit() {
        return discountAmtLimit;
    }

    public void setDiscountAmtLimit(BigDecimal discountAmtLimit) {
        this.discountAmtLimit = discountAmtLimit;
    }

    public String getChannel() {
        return channel;
    }

    public void setChannel(String channel) {
        this.channel = channel;
    }

    public String getSubChannel() {
        return subChannel;
    }

    public void setSubChannel(String subChannel) {
        this.subChannel = subChannel;
    }

    public String getMerchantIds() {
        return merchantIds;
    }

    public void setMerchantIds(String merchantIds) {
        this.merchantIds = merchantIds;
    }
}